查看原文
其他

第三十五讲 R-多元线性回归

跟投必得学 投必得医学 2022-05-07

在“R与生物统计专题”中,我们会从介绍R的基本知识展开到生物统计原理及其在R中的实现。以从浅入深,层层递进的形式在投必得医学公众号更新。

前几节课我们学习了线性回归的相关概念(第三十二讲 R-回归分析概述)、简单的线性回归模型(第三十三讲 R-简单线性回归模型(1)第三十四讲 R-简单线性回归模型(2)),相信大家对线性回归都有了一定的了解。

今天,我们讲解线性回归中稍微复杂的概念——多元线性回归。


1. 多元线性回归的概念



多元线性回归

多元线性回归是简单线性回归的扩展(第三十三讲 R-简单线性回归模型(1)第三十四讲 R-简单线性回归模型(2))。

用于多个不同的预测变量(x)预测结果变量(y)。也可用于校正混杂因素,即将需要校正的混杂因素作为一个与预测变量平行的变量放入方程式中,从而达到在新建的模型中校正该混杂因素的作用。


对于三个预测变量(x),y的预测由以下等式表示:

y = b0 + b1*x1 + b2*x2 + b3*x3

“b”值称为回归权重(或β系数)。他们测量预测变量与结果之间的关联。“ bj”可以解释为“ xj”,在其他预测变量不变的情况下,每增加一个单位对y的平均影响 。


2.多元线性回归的R实现


2.1 加载所需的R包

本章需要以下R软件包:

  • tidyverse 用于数据处理和可视化

library(tidyverse)


2.2 数据举例

我们将使用一组糖尿病的数据,它包含768人糖尿病相关的数据,包括怀孕情况,血糖,血压,皮肤厚度,胰岛素水平,体重指数,糖尿病谱系功能,年龄和糖尿病诊断结果(Outcome)。

注意

如需获取数据diabetes.csv,请关注投必得医学公众号,后台回复“diabetes.csv”获取数据。


导入数据:

my_data<-read.csv('diabetes.csv')

检查数据:

dim(my_data)

[1] 768   9

head(my_data)

输出结果

Pregnancies Glucose BloodPressure SkinThickness Insulin BMI DiabetesPedigreeFunction Age Outcome1 6 148 72 35 0 33.6 0.627 50 12 1 85 66 29 0 26.6 0.351 31 03 8 183 64 0 0 23.3 0.672 32 14 1 89 66 23 94 28.1 0.167 21 05 0 137 40 35 168 43.1 2.288 33 16 5 116 74 0 0 25.6 0.201 30 0

数据清理

new_data<-my_data[my_data$Glucose>0 & my_data$Insulin >0 & my_data$BMI >0,]dim(new_data)

#[1] 392   9

研究问题:根据胰岛素水平、怀孕次数和体重指数情况来预测血糖水平。


2.3 建立多元线性模型

多元线性模型如下所示:

Glucose = b0 + b1*Insulin + b2*Pregnancies + b3*BMI

您可以按以下方式计算R中的模型系数:

model <- lm(Glucose ~ Insulin + Pregnancies + BMI, data = new_data)summary(model)

输出结果

Call:lm(formula = Glucose ~ Insulin + Pregnancies + BMI, data = new_data)Residuals:Min 1Q Median 3Q Max-67.250 -16.499 -3.224 13.567 73.396Coefficients:Estimate Std. Error t value Pr(>|t|)(Intercept) 82.43375 6.16185 13.378 < 2e-16 ***Insulin 0.14246 0.01079 13.197 < 2e-16 ***Pregnancies 1.51089 0.38921 3.882 0.000122 ***BMI 0.39216 0.18203 2.154 0.031826 *Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 24.61 on 388 degrees of freedomMultiple R-squared: 0.3687, Adjusted R-squared: 0.3639F-statistic: 75.55 on 3 and 388 DF, p-value: < 2.2e-16


2.4 结果解释

解释多元回归分析的第一步是在模型摘要的底部检查F统计量和关联的p值。

在我们的示例中,可以看出F统计量的p值 < 2.2e-16,这表明至少一个预测变量与结果变量显着相关。

要查看哪些预测变量与结果变量显著相关,您可以检查系数表,该表显示了回归β系数和相关的t统计p值的估计值:

summary(model)$coefficient

输出结果

Estimate Std. Error t value Pr(>|t|)(Intercept) 82.4337537 6.1618466 13.378092 7.896785e-34Insulin 0.1424569 0.0107945 13.197176 4.158704e-33Pregnancies 1.5108853 0.3892135 3.881894 1.217842e-04BMI 0.3921590 0.1820293 2.154373 3.182598e-02

对于给定的预测变量,t统计量评估预测变量和结果变量之间是否存在显着关联,即预测变量的β系数是否显着不同于零。

可以看出,胰岛素水平和怀孕次数与血糖的变化显着相关(P < 0.001),而体重指数变化虽然与血糖变化也显著相关,但是关联性相对小一些(P = 0.03)。

对于给定的预测变量,系数(b)可以解释为,保持所有其他预测变量固定时,预测变量增加一个单位对y的平均影响。

例如,在固定的胰岛素水平和怀孕次数下,体重指数每增加一个单位,平均可以使血糖增加大约0.39 * 1 = 0.39个单位。

如果我们的模型中,存在有某个预测变量与结果变量不相关,则在最后的多元回归模型中,我们应该删除该预测变量。

模型系数的置信区间可以提取如下:

confint(model)

输出结果

2.5 % 97.5 %(Intercept) 70.31896628 94.5485411Insulin 0.12123388 0.1636799Pregnancies 0.74565390 2.2761166BMI 0.03427176 0.7500462


3. 模型准确性评估

正如我们在简单线性回归中所看到的(第三十四讲 R-简单线性回归模型(2)),可以通过检查R平方(R2)和残差标准误(RSE)来评估模型的整体质量。


3.1 残留标准误差(RSE)或sigma

RSE估计值提供了预测误差的度量。RSE越低,模型(基于现有数据)越准确。

可以通过将RSE除以平均结果变量来估计错误率:

sigma(model)/mean(new_data$Glucose)

[1] 0.2007225

在我们的多元回归示例中,RSE为24.6,对应于20%的错误率。


3.2 R平方



R平方

在多元线性回归中,R2表示结果变量(y)的观测值与y的拟合(即预测)值之间的相关系数。因此,R的值将始终为正,范围为0至1。

R2表示结果变量y中的方差比例,可以通过知道x变量的值来预测该比例。R2值接近1表示模型解释了结果变量中很大一部分方差。


R2的一个问题是,当将更多变量添加到模型中,即使这些变量与响应之间的关联性很弱,R2也会一直增加。解决方案是通过考虑预测变量的数量来调整R2。

摘要输出中“已调整的R平方”值是对预测模型中包含的x变量数量的校正。

在我们的示例中, 调整后的R2 = 0.3639,这意味着“ 36.39%的血糖差异可以通过胰岛素水平、怀孕次数和体重指数进行预测。


参考内容:
1. Alboukadel Kassambara, Machine Learning Essentials: Practical Guide in R


好了,本期讲解就先到这里。小伙伴们赶紧试起来吧。

在之后的更新中,我们会进一步为您介绍R的入门,以及常用生物统计方法和R实现。欢迎关注,投必得医学手把手带您走入R和生物统计的世界。

提前预告一下,下一讲我们将学习多元线性回归中的交互作用及更优模型选择

第一讲 R-基本介绍及安装

第二讲 R-编程基础-运算、数据类型和向量等基本介绍

第三讲 R编程基础-矩阵和数据框

第四讲 R-描述性统计分析

第五讲 R-数据描述性统计分析作图

第六讲 R-数据正态分布检验

第七讲 R-相关性分析及作图

第八讲 R-单样本T检验

第九讲 R-单样本Wilcoxon检验

第十讲 R-两独立样本t检验

第十一讲 R-两独立样本Wilcoxon检验

第十二讲 R-配对样本t检验

第十三讲 R-配对样本Wilcoxon检验

第十四讲 R-单因素方差分析1

第十五讲 R-单因素方差分析2

第十六讲 R-双向方差分析1

第十七讲 R-双向方差分析2

第十八讲 R-多元方差分析

第十九讲 F检验:两样本方差比较

第二十讲 多样本间的方差比较

第二十一讲 单比例的Z检验

第二十二讲 两比例Z检验

第二十三讲 R-卡方检验之拟合度检验

第二十四讲  R-卡方检验之独立性检验

第二十五讲 生存分析基础概念

第二十六讲 R-生存分析:绘制KM生存曲线

第二十七讲 R-生存分析:生存函数的假设检验

第二十八讲 R-Cox比例风险模型(1)

第二十九讲 R-Cox比例风险模型(2)

第三十讲  R-Cox比例风险模型的假设检验条件

第三十一讲 R-机器学习与回归概述

第三十二讲 R-回归分析概述

第三十三讲 R-简单线性回归模型(1)

第三十四讲 R-简单线性回归模型(2)

当然啦,R语言的掌握是在长期训练中慢慢积累的。一个人学习太累,不妨加入“R与统计交流群”,和数百位硕博一起学习。


快扫二维码撩客服,

带你进入投必得医学交流群,

让我们共同进步!

↓↓


- END -


长按二维码关注「投必得医学」,更多科研干货在等你!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存